package entity;

import java.util.Date;
import java.util.List;
import javax.ejb.Remote;

/**
 * Remote interface for PacienteFacade.
 * 
 * @author MyEclipse Persistence Tools
 */
@Remote
public interface PacienteFacadeRemote {
	/**
	 * Perform an initial save of a previously unsaved Paciente entity. All
	 * subsequent persist actions of this entity should use the #update()
	 * method.
	 * 
	 * @param entity
	 *            Paciente entity to persist
	 * @throws RuntimeException
	 *             when the operation fails
	 */
	public void save(Paciente entity);

	/**
	 * Delete a persistent Paciente entity.
	 * 
	 * @param entity
	 *            Paciente entity to delete
	 * @throws RuntimeException
	 *             when the operation fails
	 */
	public void delete(Paciente entity);

	/**
	 * Persist a previously saved Paciente entity and return it or a copy of it
	 * to the sender. A copy of the Paciente entity parameter is returned when
	 * the JPA persistence mechanism has not previously been tracking the
	 * updated entity.
	 * 
	 * @param entity
	 *            Paciente entity to update
	 * @return Paciente the persisted Paciente entity instance, may not be the
	 *         same
	 * @throws RuntimeException
	 *             if the operation fails
	 */
	public Paciente update(Paciente entity);

	public Paciente findById(Integer id);

	/**
	 * Find all Paciente entities with a specific property value.
	 * 
	 * @param propertyName
	 *            the name of the Paciente property to query
	 * @param value
	 *            the property value to match
	 * @param rowStartIdxAndCount
	 *            Optional int varargs. rowStartIdxAndCount[0] specifies the the
	 *            row index in the query result-set to begin collecting the
	 *            results. rowStartIdxAndCount[1] specifies the the maximum
	 *            count of results to return.
	 * @return List<Paciente> found by query
	 */
	public List<Paciente> findByProperty(String propertyName, Object value,
			int... rowStartIdxAndCount);

	public List<Paciente> findByIsTratamentoMedico(Object isTratamentoMedico,
			int... rowStartIdxAndCount);

	public List<Paciente> findByDocApresentado(Object docApresentado,
			int... rowStartIdxAndCount);

	public List<Paciente> findByNumeroDoc(Object numeroDoc,
			int... rowStartIdxAndCount);

	public List<Paciente> findByOrgaoExp(Object orgaoExp,
			int... rowStartIdxAndCount);

	public List<Paciente> findBySerieCartTrab(Object serieCartTrab,
			int... rowStartIdxAndCount);

	public List<Paciente> findByNomePaciente(Object nomePaciente,
			int... rowStartIdxAndCount);

	public List<Paciente> findByNomeMae(Object nomeMae,
			int... rowStartIdxAndCount);

	public List<Paciente> findByNomePai(Object nomePai,
			int... rowStartIdxAndCount);

	public List<Paciente> findByLocalNasc(Object localNasc,
			int... rowStartIdxAndCount);

	public List<Paciente> findByNacionalidade(Object nacionalidade,
			int... rowStartIdxAndCount);

	public List<Paciente> findBySexo(Object sexo, int... rowStartIdxAndCount);

	public List<Paciente> findByEstadoCivil(Object estadoCivil,
			int... rowStartIdxAndCount);

	public List<Paciente> findByProfissao(Object profissao,
			int... rowStartIdxAndCount);

	public List<Paciente> findByNomeConjugeComp(Object nomeConjugeComp,
			int... rowStartIdxAndCount);

	public List<Paciente> findByEndRua(Object endRua,
			int... rowStartIdxAndCount);

	public List<Paciente> findByEndRuaNumero(Object endRuaNumero,
			int... rowStartIdxAndCount);

	public List<Paciente> findByEndComplemento(Object endComplemento,
			int... rowStartIdxAndCount);

	public List<Paciente> findByEndCidade(Object endCidade,
			int... rowStartIdxAndCount);

	public List<Paciente> findByEndBairro(Object endBairro,
			int... rowStartIdxAndCount);

	public List<Paciente> findByEndEstado(Object endEstado,
			int... rowStartIdxAndCount);

	public List<Paciente> findByEndCep(Object endCep,
			int... rowStartIdxAndCount);

	public List<Paciente> findByFoneResidencial(Object foneResidencial,
			int... rowStartIdxAndCount);

	public List<Paciente> findByFoneComercial(Object foneComercial,
			int... rowStartIdxAndCount);

	public List<Paciente> findByCelular(Object celular,
			int... rowStartIdxAndCount);

	public List<Paciente> findByContatoRecado(Object contatoRecado,
			int... rowStartIdxAndCount);

	public List<Paciente> findByNomeRespPaciente(Object nomeRespPaciente,
			int... rowStartIdxAndCount);

	public List<Paciente> findByDocRespPac(Object docRespPac,
			int... rowStartIdxAndCount);

	public List<Paciente> findByNumeroDocRespPaciente(
			Object numeroDocRespPaciente, int... rowStartIdxAndCount);

	public List<Paciente> findByOrgaoExpRespPaciente(
			Object orgaoExpRespPaciente, int... rowStartIdxAndCount);

	public List<Paciente> findBySerieCartTrabResp(Object serieCartTrabResp,
			int... rowStartIdxAndCount);

	/**
	 * Find all Paciente entities.
	 * 
	 * @param rowStartIdxAndCount
	 *            Optional int varargs. rowStartIdxAndCount[0] specifies the the
	 *            row index in the query result-set to begin collecting the
	 *            results. rowStartIdxAndCount[1] specifies the the maximum
	 *            count of results to return.
	 * @return List<Paciente> all Paciente entities
	 */
	public List<Paciente> findAll(int... rowStartIdxAndCount);
}